tabindex = 1;
var Module = (function(parent) {
	var event = parent.event = parent.event || {};
	var my = parent.region = parent.region || {};
	my.newFile = function(node) {
		if (!rootnode.isExpanded()) {
			log("请先展开树节点！");
			// rootnode.fireEvent("dblclick",rootnode);
			// rootnode.appendChild(node);
			// node.select();
			// log(node);
		} else {
			rootnode.appendChild(node);
			rootnode.sort();
			node.select();
			log(node);
		}

	};
	// 重命名
	function _reName() {
		var item = Ext.getCmp("west-nav").getSelectionModel().getSelectedNode();
		if (item == null) {
			log("请先选中一个文件");
			return;
		}

		Ext.Msg.prompt('重命名对话框', '请输入新的文件名称:', function(btn, text) {
			if (btn == 'ok') {
				if (!text.match(/.js/g)) {
					text = text + ".js";
				}
				// 调用父窗口 把代码传到父窗口
				// var tabs = parent.Ext.getCmp("center-region");
				// var p = tabs.getActiveTab();
				// p.setTitle(text);
				// filename=text;
				var oldpath = Module.basef + "/" + item.text;
				var newpath = Module.basef + "/" + text;
				Ext.Ajax.request( {
					params : {
						oldPath : oldpath,
						newPath : newpath,
						mothed : "renameFile"
					},
					url : "extAjax",
					success : function(response) {
						if (response.responseText == "succ") {
							_refurbish();
						} else {
							Ext.Msg.alert("重命名操作失败");
						}
					}
				});
			}
		});
	};
	// 删除节点
	function _delNode() {
		var item = Ext.getCmp("west-nav").getSelectionModel().getSelectedNode();
		if (item == null) {
			log("请先选中一个文件");
			return;
		}

		Ext.Ajax.request( {
			params : {
				filePath : Module.basef + "/" + item.text,
				mothed : "delFile"
			},
			url : "extAjax",
			success : function(response) {
				if (response.responseText == "succ") {
					item.remove();
				} else {
					Ext.Msg.alert("重命名操作失败");
				}
			}
		});
	};
	// 刷新树
	function _refurbish() {
		var l = Ext.getCmp("west-nav").getLoader();
		l.load(rootnode, function() {
			Ext.getCmp("west-nav").expandAll();
		});
	};
	function _saveFile() {
		var tabs = Ext.getCmp("center-region");
		var p = tabs.getActiveTab();
		p = p.items.item("hlt");
		p.saveEditor();
	};
	function closeTab(tab) {
		tab.destroy();
	};
	/**
	 * 在打开一个tab页面的时候,如果页面中已经打开过， 不需要重新打开，激活面板即可
	 */
	my.openTab = function(node) {
		var tabs = Ext.getCmp("center-region");
		var panel = tabs.getItem(node.id);
		console.log(node.id);
		if (panel) {
			tabs.setActiveTab(panel);
			return;
		}
		if (node.isLeaf()) {
			var title, filename, url, params, filePath;
			// 从资源管理器中打开
			if (node instanceof Ext.data.Node) {
				title = node.text;
				filename = node.text;
				url = "extAjax";
				filePath = Module.basef + "\\" + filename;

			};
			// text = response.responseText;
			tabs.add( {
				id : filePath,
				title : title,
				xtype : 'panel',
				resize : false,
				isnew : false,
				items : [{
					xtype : 'codepress',
					basef : Module.basef,
					url : url,
					filePath : filePath,
					language : 'javascript',
					name : 'hlt',
					id : 'hlt',
					code : '',
					autoResize : true
				}],
				tbar : {
					width : 30,
					items : [ {
						icon : 'images/refresh.gif',
						text : '新建',
						tooltip : '新建',
						handler : my.addTab
					}, {
						icon : 'images/save.gif',
						text : '保存',
						handler : _saveFile,
						tooltip : '保存'
					}, {
						icon : 'images/execute.bmp',
						text : '执行',
						tooltip : '执行',
						handler : my.execute
					}]
				},
				html : "",
				closable : true,
				listeners : {
					resize : function(panel) {
						if (panel.items.item("hlt").rendered) {
							panel.items.item("hlt").resize();
						}
					},
					"close" : closeTab
				}
			}).show();
		}
	};
	my.addTab = function(node) {

		var title = "newFile" + tabindex;
		var filename = title + ".js";
		var tabs = Ext.getCmp("center-region");
		// text = response.responseText;
		tabs.add( {
			// id : "editor_tab_" + tabindex,
				title : title,
				index : tabindex,
				xtype : 'panel',
				resize : false,
				isnew : true,
				items : [{
					xtype : 'codepress',
					basef : Module.basef,
					language : 'javascript',
					name : 'hlt',
					id : 'hlt',
					code : '',
					autoResize : true
				}],
				tbar : {
					width : 30,
					items : [ {
						icon : 'images/refresh.gif',
						text : '新建',
						tooltip : '新建',
						handler : my.addTab
					}, {
						icon : 'images/save.gif',
						text : '保存',
						handler : _saveFile,
						tooltip : '保存'
					}, {
						icon : 'images/execute.bmp',
						text : '执行',
						tooltip : '执行',
						handler : my.execute
					}]
				},
				html : "",
				closable : true,
				listeners : {
					resize : function(panel) {
						if (panel.items.item("hlt").rendered) {
							panel.items.item("hlt").resize();
						}
					},
					"close" : closeTab
				}
			}).show();
		tabindex++;
	};
	function _tabchange(tab) {
		if (!rootnode.isExpanded()) {
			_refurbish();
		}
		var activetab = tab.getActiveTab();
		if (activetab) {
			var node = rootnode.findChild("id", activetab.id);
			node ? node.select() : null;
		}
	};
	event.addListener = function() {
		my.center.addListener("tabchange", _tabchange);
		var newbtn = Ext.getCmp("newbtn");
		newbtn.addListener('click', my.newFile);
		var renamebtn = Ext.getCmp("renamebtn");
		renamebtn.addListener('click', _reName);
		var refreshbtn = Ext.getCmp("refreshbtn");
		refreshbtn.addListener('click', _refurbish);
		var delbtn = Ext.getCmp("delbtn");
		delbtn.addListener('click', _delNode);
		var westnav = Ext.getCmp("west-nav");
		westnav.addListener('dblclick', my.openTab);
		var newtabbtn = Ext.getCmp("newtabbtn");
		newtabbtn.addListener('click', my.addTab);

	};
	return parent;
}(Module || {}));